ecb2b4b0473c019d1132c89887734792c75e0895,test/unit/org/apache/cassandra/concurrent/WaitQueueTest.java,WaitQueueTest,testSerial,#WaitQueue#,40
Before Change
}
}
});
for (int i = 0 ; i < ts.length ; i++)
ts[i].start();
Thread.sleep(100);
queue.signal();
queue.signal();
queue.signal();
queue.signal();
for (int i = 0 ; i < ts.length ; i++)
{
ts[i].join(100);
assertFalse(queue.getClass().getName(), ts[i].isAlive());
}
}
After Change
}
public void testSerial(final WaitQueue queue) throws InterruptedException
{
AtomicInteger ready = new AtomicInteger();
Thread[] ts = new Thread[4];
for (int i = 0 ; i < ts.length ; i++)
ts[i] = new Thread(new Runnable()
{
@Override
public void run()
{
WaitQueue.Signal wait = queue.register();
ready.incrementAndGet();
try
{
wait.await();
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
});
for (Thread t : ts)
t.start();
final ThreadLocalRandom random = ThreadLocalRandom.current();
while (ready.get() < ts.length)
random.nextLong();
for (Thread t : ts)
queue.signal();
for (Thread t : ts)
{
Util.joinThread(t);
assertFalse(queue.getClass().getName(), t.isAlive());
}
}